iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
自我挑戰組

30天翻玩動態網站-會員需驗證才能看到部落格文章 系列 第 9

Day09 SQL 資料庫安全與帳號權限

  • 分享至 

  • xImage
  •  

由前兩天的內容,我們知道了駭客的手法,如SQL注入,因為網路是公開互聯的,所以除了離線備份外,事先的防護也是很重要的,今夜聊聊初階的資料庫安全與帳號權限。

實作:設定 XAMPP

  • 修改 phpMyAdmin 的 MySQL 密碼
  • 進入http://localhost/phpmyadmin/
    • 或如下圖點擊進入
  • 預設phpMyAdmin的root是不需要密碼的
    • 讓我們在本機進行練習的話比較方便,但是如果有要對外公開,需修改root密碼
  • 選 root 的 localhost 編輯權限 修改密碼

  • 刪掉兩個 任意(%) 的帳號,因為這兩個帳號設定,讓資料庫可以匿名登入
    • 會出現錯誤訊息,但可以正常刪除

改完 Root 密碼後的設定

  • 找到..\xampp\phpMyAdmin 資料夾開啟 config.inc.php
    • 或在控制面板進入
  • 找到下面程式碼,將config改成cookie
    • localhost登入時需要帳號密碼
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie';

如果 root 登入帳號密碼出現錯誤

mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)
使用配置文件中定義的控制用戶連接失敗

  • 開啟config.inc.php,找到下面這段程式碼
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';

  • 修改成
$cfg['Servers'][$i]['controluser'] = 'root';  <---- 自己資料庫的用戶名稱
$cfg['Servers'][$i]['controlpass'] = '123456';  <---- 自己資料庫的用戶密碼

新增使用者

  • 最後我們還需要在建立一般的使用者test,僅給予操作test資料庫的權限
  • 操作資料庫盡量避免使用 root 或admin最高權限帳號
  • 輸入完 test 帳密後 執行
  • 然後指定 test 資料 執行
  • 指定資料庫權限 全選 執行
  • 最後登出 root,嘗試用 test 登入,成功只會顯示左方這兩個資料庫

補充資料

海豚 海豹 資料庫

MySQL 被甲骨文公司收購後,Oracle 大幅調漲 MySQL 商業版的售價,且甲骨文公司不再支援另一個自由軟體專案OpenSolaris的發展,因此導致自由軟體社群們對於 Oracle 是否還會持續支援 MySQL 社群版(MySQL之中唯一的免費版本)有所隱憂
MySQL 的創始人麥克爾·維德紐斯以 MySQL 為基礎,成立分支計劃 MariaDB。而原先一些使用 MySQL 的開源軟體逐漸轉向 MariaDB 或其它的資料庫。

總結

今天初步了解 SQL 資料庫的安全與帳號權限,並且動手改善了幾個有疑慮的設定,是不是感覺很棒,或許你能成為正義白帽客的一份子呢!不急慢慢來,我們明天聊聊邦友們意見回饋,謝謝你的支持,明天再會。


上一篇
Day08 SQL 的 CRUD = 藏鏡人的愛恨情仇
下一篇
Day10 為什麼要參加鐵人賽與邦友意見 Q & A
系列文
30天翻玩動態網站-會員需驗證才能看到部落格文章 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言